#ifndef KV_STORE_H
#define KV_STORE_H

#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <stdbool.h>

#define MAX_KEY_SIZE 100
#define MAX_VALUE_SIZE 1024

// 键值对节点结构
typedef struct Node {
    char key[MAX_KEY_SIZE];
    char value[MAX_VALUE_SIZE];
    struct Node *next;
} Node;

// 键值存储结构
typedef struct {
    Node *head;
    char *filename;
} KVStore;

// 初始化键值存储
KVStore *kv_store_init(const char *filename);

// 关闭键值存储并释放资源
void kv_store_close(KVStore *store);

// 存储键值对
bool kv_store_put(KVStore *store, const char *key, const char *value);

// 获取键对应的值
char *kv_store_get(KVStore *store, const char *key);

// 删除键值对
bool kv_store_delete(KVStore *store, const char *key);

// 从文件加载键值对
bool kv_store_load(KVStore *store);

// 将键值对保存到文件
bool kv_store_save(KVStore *store);

#endif // KV_STORE_H